In the wake of innovations such as cloud computing and virtualization, an organization's information technology (“IT”) infrastructure and its relation to underlying applications consuming IT computing resources have become very complex. For example, an organization's IT infrastructure typically includes a diverse set of hardware components which are dependent on each other, with innumerable applications consuming these components. In many cases, a virtualization layer is created on top of the IT infrastructure, effectively obscuring the health of the underlying components from the applications consuming the resources they provide. Further, in addition being dependent on an organization's underlying IT computing resources, most applications typically have multi-layer and two-way dependencies with other applications. Accordingly, problems experienced by one application can often impact several upstream applications.
Due to these complexities, when an outage or “crisis” of the IT infrastructure occurs down at the component level, it is exceedingly difficult or even impossible to determine which infrastructure components are impacted. It is similarly difficult to then determine the full scope which applications are directly impacted by the outage of these affected infrastructure components, and which other applications are impacted based on one or more dependency relationships with other affected applications or infrastructure components.